function [stageType]= obtainStageType (poles, zeros)
if length(zeros)==2
    if abs(2*real(zeros(1)))<abs(zeros(1))
        zeros(1)=-1i*imag(zeros(1));
        zeros(2)=-1i*imag(zeros(2));
    end
end
if isempty(zeros)
    stageType=2; % Pasa Bajos
elseif zeros(1)==0
    if length(poles)==2
        if length(zeros)==1
            stageType=1; % Pasa Banda
        else stageType=3; % Pasa Altos
        end
    else
        if length(zeros)==1
            stageType=3; % Pasa altos
        end
    end
elseif zeros(1)==1i*imag(zeros(1))
    if abs(zeros(1))>abs(poles(1))
        stageType=2; % Pasa Bajos Notch
    elseif abs(zeros(1))<abs(poles(1))
        stageType=3; % Pasa Altos Notch
    else stageType=4; % Band Reject Notch (Deberia dar un rango para error??)
    end
elseif zeros(1)==real(zeros(1))
    if length(zeros)==2
        if real(poles(1))==real(poles(2))
            stageType=1; % Pasa Banda
        elseif abs(poles(1))~=abs(poles(2))
            if min(zeros)<min(poles) && max(zeros)>max(poles)
                stageType=1; % Pasa Banda
            elseif min(zeros)>min(poles) && max(zeros)<max(poles)
                stageType=4; % Rechaza Banda
            end
        elseif min(poles)==0 && ((max(poles)<zeros(2) && max(poles)>zeros(1)) || (max(poles)>zeros(2) && max(poles)<zeros(1)))
            stageType=4; % Rechaza Banda
        end
    elseif length(zeros)==1
        if length(poles)==2 && abs(zeros(1))<abs(poles(1))
            stageType=1; % Pasa Banda
        else
            if zeros(1)<poles(1)
                stageType=3; % Pasa Altos
            elseif zeros(1)>poles(1)
                stageType=2; % Pasa Bajos
            end
        end
    end
else stageType=0;
end       
end